package org.darcy.service.privilege;

import java.util.List;
import java.util.Map;

import org.darcy.entity.org.Staff;
import org.darcy.entity.privilege.SysUser;
import org.darcy.framework.generic.GenericService;
import org.darcy.framework.model.PageData;
import org.darcy.framework.model.PageParam;
import org.darcy.framework.model.R;

public interface SysUserService extends GenericService<SysUser> {

	/**
	 * SysUser列表(分页)
	 * 
	 * @param param 分页参数
	 */
	PageData<SysUser> page(PageParam<SysUser> param);

	/**
	 * 通过员工信息新增用户
	 * 
	 * @param staff 员工信息
	 */
	SysUser addUser(Staff staff);

	/**
	 * 通过用户名查询用户
	 * 
	 * @param username 用户名或者手机号码或者工号
	 * @return
	 */
	SysUser getUser(String username);

	/**
	 * 分页查询列表
	 * 
	 * @param user 条件
	 * @return
	 */
	List<SysUser> getAll(SysUser user);

	/**
	 * 设置密码
	 * 
	 * @param user 参数
	 */
	void setPassword(SysUser user);

	/**
	 * 通过用户名和密码登录
	 * 
	 * @param username 用户名、工号、手机号码
	 * @param password 密码
	 * @return 用户+角色列表
	 */
	R login(String username, String password);

	/**
	 * 获取用户姓名
	 * 
	 * @param userIds 用户id列表
	 */
	Map<Integer, String> getNameMapByIds(List<Integer> userIds);
}
